15.2. 何时用 SSE

如上所述,SSE 是一种技术,允许客户订阅服务器上产生的事件通知。服务器生成新的事件和将这些事件发送回订阅的客户端来接收通知。换句话说,SSE 为单向发布-订阅模式提供了一个解决方案。

一个很好的应用场景是,SSE 可以用于简单的 RESTful 服务的消息交换。客户端发送新消息到服务器,并从其他客户端订阅接收消息。我们称这种资源为 messages(信息)。在发布新消息到这个资源是一个典型的客户端与之messages 资源之间的 HTTP 请求-响应交互,订阅接收所有新的消息通知这会很男,并且对于与一系列标准的请求-响应消息交换的模型是不切实际的。使用 SSE 服务器发送的事件提供了一个更实际的方法。您可以使用SSE 让客户订阅信息资源通过标准 GET 请求(例如使用 SSE 客户端API,javascript API 或 Jersey 客户端 API ),以独立的事件让服务器广播新消息给所有连接上的客户端(在我们的例子中使用 Jersey Server SSE API)。注意,在 Jersey 中,支持 SSE 通常被实现为一个 JAX-RS 资源的方法。在你的 Jersey/JAX-RS 应用程序中,不需要做任何特别的提供对 SSE 的支持,您启用 SSE 的资源是一个标准的 REST 风格的 Web应用程序的一部分,定义了应用程序的 REST API。接下来的章节描述了SSE支持在 Jersey 的更多细节。

重要

注意,在 Jersey 中,支持 SSE 通常通过一个 JAX-RS 资源来实现, Jersey SSE APIs 并不是 JAX-RS 规范的一部分。SSE 所支持和相关 API 是一个扩展了 JAX-RS 的特定功能。